$(function() {
	// 加载弹出层
	layui.use([ 'form', 'element' ], function() {
		layer = layui.layer;
		element = layui.element;
	});

	// 触发事件
	var tab = {
		tabAdd : function(title, url, id) {
			// 防止缓存   增加当前的iframe 供使用                放到缓存里面去  ，然后根据key 去获取
//			url = url + "?r=" + _.now()+"&iframeId=iframe"+id;   
			// 新增一个Tab项
			element.tabAdd('xbs_tab', {
				title : title,
				content : '<iframe  id="iframe' + id + '" name="iframe' + id + '"  tab-id="' + id + '" frameborder="0" src="' + url + '" scrolling="yes" class="x-iframe"></iframe>',
				id : id
			})
		},
		tabDelete : function(othis) {
			// 删除指定Tab项
			element.tabDelete('xbs_tab', '44'); // 删除：“商品管理”

			othis.addClass('layui-btn-disabled');
		},
		tabChange : function(id) {
			// 切换到指定Tab项
			element.tabChange('xbs_tab', id); // 切换到：用户管理
		}
	};

	tableCheck = {
		init : function() {
			$(".layui-form-checkbox").click(function(event) {
				if ($(this).hasClass('layui-form-checked')) {
					$(this).removeClass('layui-form-checked');
					if ($(this).hasClass('header')) {
						$(".layui-form-checkbox").removeClass('layui-form-checked');
					}
				} else {
					$(this).addClass('layui-form-checked');
					if ($(this).hasClass('header')) {
						$(".layui-form-checkbox").addClass('layui-form-checked');
					}
				}

			});
		},
		getData : function() {
			var obj = $(".layui-form-checked").not('.header');
			var arr = [];
			obj.each(function(index, el) {
				arr.push(obj.eq(index).attr('data-id'));
			});
			return arr;
		}
	}

	// 开启表格多选
	tableCheck.init();

	$('.container .left_open i').click(function(event) {
		if ($('.left-nav').css('left') == '0px') {
			$('.left-nav').animate({
				left : '-221px'
			}, 100);
			$('.page-content').animate({
				left : '0px'
			}, 100);
			$('.page-content-bg').hide();
		} else {
			$('.left-nav').animate({
				left : '0px'
			}, 100);
			$('.page-content').animate({
				left : '221px'
			}, 100);
			if ($(window).width() < 768) {
				$('.page-content-bg').show();
			}
		}

	});

	$('.page-content-bg').click(function(event) {
		$('.left-nav').animate({
			left : '-221px'
		}, 100);
		$('.page-content').animate({
			left : '0px'
		}, 100);
		$(this).hide();
	});

	$('.layui-tab-close').click(function(event) {
		$('.layui-tab-title li').eq(0).find('i').remove();
	});

	$("tbody.x-cate tr[fid!='0']").hide();
	// 栏目多级显示效果
	$('.x-show').click(function() {
		if ($(this).attr('status') == 'true') {
			$(this).html('&#xe625;');
			$(this).attr('status', 'false');
			cateId = $(this).parents('tr').attr('cate-id');
			$("tbody tr[fid=" + cateId + "]").show();
		} else {
			cateIds = [];
			$(this).html('&#xe623;');
			$(this).attr('status', 'true');
			cateId = $(this).parents('tr').attr('cate-id');
			getCateId(cateId);
			for ( var i in cateIds) {
				$("tbody tr[cate-id=" + cateIds[i] + "]").hide().find('.x-show').html('&#xe623;').attr('status', 'true');
			}
		}
	})

	// 左侧菜单效果    修改为支持未来元素
	// $('#content').bind("click",function(event){
	$(document).on("click",'.left-nav #nav li',function(event) {
		//追加选中颜色 #148cf1
		var $this = $(this);
		$('.left-nav #nav li cite').removeClass("optMenu");  //移除所有的选中效果
		$this.find("cite:eq(0)").addClass("optMenu");   //追加当前的效果  
		if ($(this).children('.sub-menu').length) {  //如果存在子菜单
			if ($(this).hasClass('open')) {   //如果是展开效果
				$(this).removeClass('open');   //修改为关闭
				$(this).find('.nav_right').html('&#xe697;');   //追加小图标向左
				$(this).children('.sub-menu').stop().slideUp(); //停止所有在指定元素上正在运行的动画。 通过高度变化（向上减小）来动态地隐藏所有匹配的元素，在隐藏完成后可选地触发一个回调函数。
				$(this).siblings().children('.sub-menu').slideUp();  //取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选。
			} else {
				$(this).addClass('open'); //展开
				$(this).children('a').find('.nav_right').html('&#xe6a6;');  //追加展开图标
				$(this).children('.sub-menu').stop().slideDown();  //通过高度变化（向下增大）来动态地显示所有匹配的元素，在显示完成后可选地触发一个回调函数。
				$(this).siblings().children('.sub-menu').stop().slideUp();
				$(this).siblings().find('.nav_right').html('&#xe697;');
				$(this).siblings().removeClass('open');
			}
		} else {  //否则不存在子菜单  
			var url = $(this).children('a').attr('_href');   //获取当前请求的url  以iframe 方式追加
			var title = $(this).find('cite').html();
			var index = $('.left-nav #nav li').index($(this));
			for (var i = 0; i < $('.x-iframe').length; i++) {
				if ($('.x-iframe').eq(i).attr('tab-id') == index + 1) {
					tab.tabChange(index + 1);
					event.stopPropagation();
					return;
				}
			}
			tab.tabAdd(title, url, index + 1);
			tab.tabChange(index + 1);
		}
		event.stopPropagation();  //防止事件冒泡到DOM树上，也就是不触发的任何前辈元素上的事件处理函数。
	});
	//查询前台菜单数据变成树   支持多级树
	var selectSystemMenuListUrl = ctxPath +"/tSystemMenu/selectSystemMenuList";
	$.post(selectSystemMenuListUrl,function(data){
		//异步请求菜单的数据    数据转换成树，然后封装一下这个方法
		if(data.code==200){
			var tree  = _.listToTree(data.data);
			if(tree.length){
				var html ="";
				html = generMenusHtml(tree,html); //递归生成菜单树
				$("#nav").html(html);
				//默认点击第一个
				$("#nav").find("a").get(0).click();
			}
		}
	})

});
//递归生成菜单
var fileSpe = ' \n ';
function generMenusHtml(tree,html){
	for(var i=0,len=tree.length;i<len;i++){
		var obj = tree[i];
		html+= generNavliHtml(obj)+fileSpe; //生成li
		if(obj.childArr&&obj.childArr.length>0){  //生成子级树
			html+='<ul class="sub-menu">' +fileSpe;
			html=generMenusHtml(obj.childArr,html)+fileSpe;
			html+=	'</ul>'+fileSpe;
		}
		html+='</li>';  //闭合当前等级
	}
	return html;
}
var cateIds = [];
function getCateId(cateId) {

	$("tbody tr[fid=" + cateId + "]").each(function(index, el) {
		id = $(el).attr('cate-id');
		cateIds.push(id);
		getCateId(id);
	});
}
///====================额外新增的=================
function generNavliHtml(obj){
	if(!obj.menuIcon){
		obj.menuIcon ="layui-icon-menu-fill"; //设置默认图标展示
	}
	return '<li>'
   +'<a href="javascript:;" _href="'+ctxPath+obj.reqUrl+'">' 
   +' <i class="iconfont layui-icon '+obj.menuIcon+'"></i>' 
   +' <cite>'+obj.name+'</cite>' 
   +' <i class="iconfont nav_right">&#xe697;</i>' 
   +'</a>';
//   +'</li>';
}